1. Field of the Invention
The present invention relates to the field of Local Area Network (LAN) switching. In particular, the present invention relates to a scaleable data path architecture and a data comparison engine utilized in filtering and forwarding data packets by a LAN switch operating in high speed LANs such as a Gigabit Ethernet LAN.
2. Description of the Related Art
Initial, or first generation, LAN switches solved congestion problems associated with traditional LANs that arose as workgroups and networks, such as an Ethernet (operating at 10 million bits per second (10 Mb/s)), grew. (The term Ethernet LAN, or simply Ethernet, as used herein shall apply to LANs adhering to the Carrier Sense, Multiple Access with Collision Detection (CSMA/CD) standard, generally operating at a signaling rate of 10 Mb/s over various media types and transmitting Ethernet formatted or Institute of Electrical and Electronic Engineers (IEEE) standard 802.3 formatted data packets). Adding new users and deploying new applications required more bandwidth (i.e., data transfer capability as that term is applied to networks) than Ethernet LANs could reasonably provide. The result was slow performance primarily due to network congestion. Initial Ethernet switches reduced the congestion by segmenting workgroups into different LANs having separate collision domains and switching traffic, i.e., data packets, between the workgroups at very high speeds.
Deployment of first generation Ethernet switches and growth of the client/server computing model moved the primary network performance bottleneck from the end station to the Ethernet switch port connected to, for example, a high-performance server. Second generation Ethernet switches added a port connected to a relatively high-speed communications medium, commonly referred to as a backbone. Connecting a port on the Ethernet switch to a backbone operating according to a high-speed technology such as Fiber Distributed Data Interface (FDDI), Asynchronous Transfer Mode (ATM), or Fast Ethernet, opened up the bottleneck allowing traffic from many clients connected to the Ethernet switch to be switched efficiently at the connection to the server or backbone. (The term Fast Ethernet LAN, or simply Fast Ethernet, as used herein shall apply to LANs adhering to the Carrier Sense, Multiple Access with Collision Detection (CSMA/CD) standard, generally operating at a signaling rate of 100 Mb/s over various media types and transmitting Ethernet formatted or Institute of Electrical and Electronic Engineers (IEEE) standard 802.3 formatted data packets).
Until recently, network traffic patterns in the client/server network model were generally predictable. Most traffic remained on a local LAN as clients accessed local servers. Occasionally, a small percentage of traffic, for example, electronic mail, went outside the workgroup connected to a common shared communications medium. Today, intranet, Internet, and World Wide Web (WWW) communication have significantly changed traffic patterns. Data can now exist and be randomly accessed anywhere, in contrast to the traffic patterns in traditional client/server networks. Additionally, more powerful applications and computers capable of providing, for example, video and multimedia at the desktop end station are driving the need for greater network speed and bandwidth.
Signaling rates associated with very high-speed technologies such as Gigabit Ethernet and the rapid assimilation of more powerful applications and computers relying on intranet or Internet communication have driven the need for next generation of LAN switches. (The term Gigabit Ethernet LAN, or simply Gigabit Ethernet, as used herein shall apply to LANs adhering to the Carrier Sense, Multiple Access with Collision Detection (CSMA/CD) standard, generally operating at a signaling rate of 1,000 Mb/s over various media types and transmitting Ethernet formatted or Institute of Electrical and Electronic Engineers (IEEE) standard 802.3 formatted data packets).
What is needed is a highly scaleable LAN switch capable of resolving today's congestion problems, handling delay-sensitive and real-time data, scaling network size to support thousands of users, and aggregating the different speeds of traffic through the network. A third generation LAN switch extends the evolutionary migration from 10 Mb/s CSMA/CD (Ethernet) to 100 Mb/s CSMA/CD (Fast Ethernet) to 1,000 Mb/s CSMA/CD (Gigabit Ethernet) backbones. Such network scalability is important to LAN design and migration, allowing optimization of the network by providing high-speed links for trunking and server connections while maintaining performance at the desktop.
Thus, third generation LAN switches should be capable of providing sufficient bandwidth within the switch to remove any possibility of contributing to network congestion. The switch should be capable of switching multiple high-speed and low-speed ports simultaneously without any blocking throughput on any port. Furthermore, the switch should guarantee full bandwidth availability at all times. The switch capacity, in particular, the backplane capacity of the switch, should be greater than the sum of all its ports so data packets are never dropped or lost even when the network load requires all ports to support, for example, full-duplex gigabit bandwidth. Additionally, the switch should be capable of bridging (at the Media Access Control (MAC) layer) or routing (at the Network layer) data packets at least as fast as the data transmission speed of the communication media to which it is attached.
Various third generation LAN switch architectures have several key differences in LAN switch implementations. For example, a so-called Gigabit Ethernet switch may simply utilize a number of Fast Ethernet ports, e.g., 6 Fast Ethernet ports, and include a single Gigabit Ethernet port. Such a switch needs only to provide internal bandwidth capacity somewhere in the range of 1-2 gigabits per second, which is generally within the capability of any LAN switch, regardless of the switch architecture, but fails to provide the desired scalability referred to above or guaranteed bandwidth availability.
What is needed is a switch architecture that readily supports multiple Fast Ethernet ports and/or a number of Gigabit Ethernet ports, for example, 64 Fast Ethernet ports, or 8 Gigabit Ethernet ports, or a combination thereof. Traditional LAN switch architectures, such as central shared memory-, cross-bar switch-, or bus-based architectures generally have a maximum internal bandwidth capability of 2 Gigabits per second (Gb/s). 2 Gb/s bandwidth appears to be a threshold above which scaling such traditional switch architectures is generally not feasible. Thus, given a LAN switch having, for example, 8 Gigabit Ethernet ports, these traditional architectures are generally incapable of providing sufficient bandwidth within the switch to remove any possibility of contributing to network congestion, switching multiple high-speed and low-speed ports simultaneously without any blocking throughput on any port, and providing full bandwidth availability at all times.
As an example, some prior art bus-based switches have utilized a backplane bus operating according to the well known Peripheral Component Interconnect (PCI) local bus standard. The PCI bus can exchange data at either 32 or 64 bits per clock cycle, depending on the implementation. Operating at a speed of 33 MHz, a 32-bit wide PCI bus is therefore generally capable of achieving 1 Gb/s bandwidth, while a 64-bit wide PCI bus is generally capable of achieving 2 Gb/s bandwidth. Scaling the clock speed of the PCI bus to 66 MHz to achieve a bit rate of 4 Gb/s is possible, but is generally thought to be the maximum rate at which the PCI bus can operate. Thus, a different architecture is necessary to provide greater internal bandwidth for a switch than achieved with a PCI bus-based architecture.
A central shared memory architecture lends itself to greater internal bandwidth than a bus-based architecture, and provides greater flexibility in terms of allocating buffers among ports, and reasonable control over allocation of memory resources. However, present switch implementations based on traditional central shared memory architectures are prohibitively expensive when scaled to meet the needs of a switch supporting a significant number of Gb/s ports.
One method of achieving significantly greater internal bandwidth requires scaling the central shared memory architecture such that the data bus providing access to memory is scaleable to very wide bus widths, on the order of, e.g., 256 bits, 512 bits, or even higher. Data path circuitry providing such a wide data bus for transferring data between the ports and the central shared memory is difficult and expensive to implement on a single Integrated Circuit (IC) chip due to pin count. For example, implementing a data path circuit supporting multiple ports and a 512-bit wide data path on a single IC yields a pin count in excess of 1000 pins on the IC. Multiple IC chips each having fewer pins is substantially less expensive to manufacture than a monolithic IC chip with a massive pin count given present IC manufacturing technologies. What is needed, then, is a scaleable data path architecture for a central shared memory architecture-based LAN switch that lends itself to implementation on a number of IC chips.